Skip to content

[LANGPLAT-883] Add PHP parallel benchmarks to benchmarks pipeline#3793

Draft
Leiyks wants to merge 7 commits into
masterfrom
leiyks/LANGPLAT-883-competitor-benchmarks
Draft

[LANGPLAT-883] Add PHP parallel benchmarks to benchmarks pipeline#3793
Leiyks wants to merge 7 commits into
masterfrom
leiyks/LANGPLAT-883-competitor-benchmarks

Conversation

@Leiyks

@Leiyks Leiyks commented Apr 15, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds PHP APM SDK parallel benchmarks to the benchmarks child pipeline via GitLab CI include: from DataDog/apm-reliability/apm-sdks-benchmarks
  • Introduces two new pipeline stages: php-laravel-realworld-parallel and php-laravel-realworld-parallel-slo
  • Jira: LANGPLAT-883

The companion PR adding PHP support to apm-sdks-benchmarks is at DataDog/apm-sdks-benchmarks#115.

Test plan

  • Trigger linux-php-laravel-realworld-parallel manually from the benchmarks child pipeline on a branch
  • Confirm all benchmark instances start and produce artifacts
  • Verify SLO jobs run in php-laravel-realworld-parallel-slo stage

@Leiyks Leiyks requested a review from a team as a code owner April 15, 2026 13:23
@Leiyks Leiyks marked this pull request as draft April 15, 2026 13:23
@datadog-prod-us1-4

datadog-prod-us1-4 Bot commented Apr 15, 2026

Copy link
Copy Markdown

Pipelines  Tests

Fix all issues with BitsAI

⚠️ Warnings

🚦 18 Pipeline jobs failed

DataDog/apm-reliability/dd-trace-php | ASAN test_c: [8.5, arm64]   View in Datadog   GitLab

DataDog/apm-reliability/dd-trace-php | test_extension_ci: [7.0]   View in Datadog   GitLab

DataDog/apm-reliability/dd-trace-php | linux-php-laravel-realworld-parallel   View in Datadog   GitLab

View all 18 failed jobs.

ℹ️ Info

No other issues found (see more)

🧪 All tests passed
❄️ No new flaky tests detected

🔄 Datadog auto-retried 2 jobs - 2 passed on retry View in Datadog

🎯 Code Coverage (details)
Patch Coverage: 100.00%
Overall Coverage: 54.08% (-0.04%)

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: f3e37b7 | Docs | Datadog PR Page | Give us feedback!

@Leiyks Leiyks changed the title [LANGPLAT-883] Add apm-sdk-benchmarks trigger for PHP competitor benchmarks [LANGPLAT-883] Add apm-sdk-benchmarks trigger for PHP macrobenchmarks Apr 16, 2026
@Leiyks Leiyks changed the title [LANGPLAT-883] Add apm-sdk-benchmarks trigger for PHP macrobenchmarks [LANGPLAT-883] Add PHP parallel benchmarks to benchmarks pipeline Apr 16, 2026
Leiyks added 2 commits April 16, 2026 15:50
… include

Switch from a trigger job to a GitLab CI include, pulling the PHP
Laravel Realworld parallel benchmark jobs directly into this pipeline.
Adds two new stages: php-laravel-realworld-parallel and
php-laravel-realworld-parallel-slo.
@Leiyks Leiyks force-pushed the leiyks/LANGPLAT-883-competitor-benchmarks branch from f2c60b4 to bea5e8e Compare April 16, 2026 13:53
Leiyks and others added 5 commits June 19, 2026 13:05
… artifacts (LANGPLAT-883)

Extends the included apm-sdks-benchmarks PHP jobs from just Laravel to
the full triplet (Laravel + Symfony + WordPress), and wires the locally-
built tracer into each by:

- Adding a `needs:` declaration to the 3 main benchmark jobs that pulls
  the `package extension` and `datadog-setup.php` artifacts from the
  parent dd-trace-php pipeline.
- Exporting DD_TRACER_ARTIFACT_DIR=$CI_PROJECT_DIR/packages so the
  apm-sdks-benchmarks side (fetch-tracing-libs.sh + each framework's
  start-app.sh) installs the in-PR tracer build via
  `datadog-setup.php --file dd-library-php-*.tar.gz` instead of pulling
  the latest GitHub release.

Standalone runs of the apm-sdks-benchmarks pipeline are unaffected —
when the env var is unset, the existing GitHub-release path runs.
…ch (LANGPLAT-883)

Temporary pin until DataDog/apm-sdks-benchmarks#115 merges to main: until
then the 3 PHP yamls only exist on the leiyks/LANGPLAT-883-php-competitor-
benchmarks branch, and the parallel-benchmark-template version on main
doesn't honor DD_TRACER_ARTIFACT_DIR yet. Pointing both the include refs
and APM_SDKS_BENCHMARKS_BRANCH at the PR branch lets us validate the
end-to-end artifact-passing flow now; flip both back to 'main' once
apm-sdks-benchmarks#115 lands.
…PLAT-883)

The benchmarks.yml file is included into the child pipeline alongside
package-gen.yml (generated by generate-package.php). GitLab merges those
two files, and when both declare a top-level "stages:" block the last
one wins — our PR's stages: list was overriding package-gen's, breaking
existing jobs like "package-oci: [linux, amd64]" that target the
shared-pipeline stage.

Fix: drop the stages: block from benchmarks.yml and append the 6 PHP
stages to the single source of truth in generate-package.php. The child
pipeline now exposes the union of every stage anyone declares.
…-883)

The included .parallel-benchmark-template defines
APM_SDKS_BENCHMARKS_BRANCH="main" in its own job-level variables block,
which overrides top-level variables. Setting our PR-branch override at
the top level was a no-op — the template's job-level default still won
the merge, so the runtime clone targeted main (where tracing-libs/php/
fetch-tracing-libs.sh doesn't exist yet) and the job died with
'No such file or directory'.

Move the override into each of the 3 PHP benchmark jobs' own variables
blocks so it actually shadows the template default. Drop the top-level
variable that wasn't doing anything.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant